package com.zdxlz.fcmp.upms.api.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zdxlz.fcmp.upms.api.dto.SystemMenuDto;
import com.zdxlz.fcmp.upms.api.entity.SystemMenu;
import com.zdxlz.fcmp.upms.api.vo.SystemMenuListVo;
import com.zdxlz.fcmp.upms.api.vo.SystemMenuTreeVo;

import java.util.List;

/**
 * 菜单信息表(SystemMenu)表服务接口
 *
 * @author aman
 * @since 2025-01-15 16:59:00
 */
public interface ISystemMenuService extends IService<SystemMenu> {

    /**
     * @Description：用户登陆成功后，获取系统菜单信息
     * @Author：aman
     * @Date：2025/1/17 10:18
     * @ParamsType：[]
     * @Return：java.util.List<com.example.springsecurity.vo.login.SystemMenuTreeVo>
     */
    List<SystemMenuTreeVo> getMenuList(List<String> userLoginPermissions);

    /**
     * @Description：查询菜单列表
     * @Author：aman
     * @Date：2025/1/17 10:19
     * @ParamsType：[]
     * @Return：java.util.List<com.example.springsecurity.vo.SystemMenuListVo>
     */
    List<SystemMenuListVo> queryMenuList(List<String> permissionCodes);

    /**
     * @Description：查询菜单列表
     * @Author：aman
     * @Date：2025/1/17 10:19
     * @ParamsType：[]
     * @Return：java.util.List<com.example.springsecurity.vo.SystemMenuListVo>
     */
    boolean deleteMenuByIds(List<Integer> ids);

    boolean insertMenu(SystemMenu systemMenu);

    boolean updateMenu(SystemMenu systemMenu);

    /**
     * @Description：通过id批量更新菜单状态
     * @Author：aman
     * @Date：2025/1/17 09:49
     */
    boolean updateMenuStatus(SystemMenuDto dto);
}
